﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
    //1、定义一个方法，求一个整数数组中的最大值，最小值，和，平均数。
    //如果是一个方法只能有一个返回值，那只能每一个都得定义一个方法来实现，不过有了ref和out这实现起来就方便多了。
    //参考步骤：
    //定义一个一维数组，数组中存放一些数据（控制台输入）。
    //定义几个变量：max、min、sum、avg
    //定义一个方法，方法返回数组元素之和,方法形参有max min avg。
    //请用ref和out各做一遍，并在注释中，描述他们的区别。
        static void Main(string[] args)
        {
            int[] arr = { 114, 514, 810, 1919 };
            int max;//使用out时不需要初始化，使用ref要初始化
            int min;
            double avg;
            int sum=GetSum(arr,out max,out min,out avg);



            Console.WriteLine("最大值为{0}，最小值为{1}，和为{2}，平均数为{3}",max,min,sum,avg);
        }

         static int GetSum(int[] array,out int max, out int min,out double avg )
        {
            int sum = 0;
            max=array[0];//使用ref此处不需要给max,min赋值，在前面就已经初始化过
            min = array[0];

            for (int i = 0; i < array.Length; i++)
            {
                sum += array[i];

                if (max<array[i]) 
                {
                    max = array[i];
                }
                if (min > array[i])
                {
                    min = array[i];
                }
            }
            avg = sum / array.Length;
            return sum;
        }
    }
}

//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;

//namespace ConsoleApp1
//{
//    class Program
//    {
//        static void Main(string[] args)
//        {
//            int[] arr = { 114, 514, 810, 1919 };
//            int max=arr[0];
//            int min=arr[0];
//            double avg=0;
//            int sum = GetSum(arr, ref max, ref min, ref avg);



//            Console.WriteLine("最大值为{0}，最小值为{1}，和为{2}，平均数为{3}", max, min, sum, avg);
//        }

//        static int GetSum(int[] array, ref int max, ref int min, ref double avg)
//        {
//            int sum = 0;
//            for (int i = 0; i < array.Length; i++)
//            {
//                sum += array[i];

//                if (max < array[i])
//                {
//                    max = array[i];
//                }
//                if (min > array[i])
//                {
//                    min = array[i];
//                }
//            }
//            avg = sum / array.Length;
//            return sum;
//        }
//    }
//}
